

  
* Table 1: Summary statistics of newspaper-level variables
use "newspaper month level data.dta", clear

eststo clear
eststo: quietly estpost summarize simpson foundation private2 traded chain newsp_per_o leader subscr_revenue ///
 pub_freq pages
esttab, cells("mean(fmt(3)) sd(fmt(3)) min(fmt(3)) max(fmt(3))") nodepvar varwidth(63) noobs ///
 coeflabels(simpson "Index of internal concentration of political viewpoints" leader "Local market leader (yes/no)" ///
 foundation "Foundation ownership (yes/no)" traded "Publicly traded (yes/no)" ///
 private2 "Private ownership (yes/no)" subscr_revenue "Yearly subscription revenue (in 10 M SEK)" ///
 pub_freq "Publication frequency (# of days per week)" ///
 pages "Average number of pages" chain "Part of newspaper chain (yes/no)" ///
 newsp_per_o "Number of co-owned newspapers") ///
 title("Table 1: Summary statistics of newspaper-level variables") ///
 addnotes("Notes: The data refer to 6 years between 2014 and 2019 and up to 130 newspapers (N = 756).")
 
 
 
* Table 2: Ordinary least squares regression predicting newspapers' concentration of political viewpoints
use "newspaper month level data.dta", clear
quietly tab year, gen(dummy_year)

global est_notes = "The regressions use data at the newspaper-year level. The dependent variable is the index of internal concentration of political opinions."
global se_notes = "Standard errors (in parentheses) are clustered by newspaper."
eststo clear
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 chain private2 traded dummy_year2-dummy_year6, cluster(outlet)
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 newsp_per_o private2 traded dummy_year2-dummy_year6, cluster(outlet)
esttab, star(* 0.10 ** 0.05 *** 0.01) se compress nonotes varwidth(52) noobs ///
 scalars("r2_a Adj. R2" "N_clust Number of newspapers" "N Number of observations") sfmt(3 0 0) ///
 cells(b(fmt(3) star) se(par fmt(3))) nodepvars nomtitles modelwidth(14) ///
 refcat(private2 "Ownership form (reference category: foundation" ///
 dummy_year2 "Year dummies (reference category: 2014") ///
 order(private2 traded chain newsp_per_o leader subscr_revenue pub_freq pages) ///
 coeflabels(private2 "-private" traded "-publicly traded" ///
 leader "Local market leader (yes/no)" ///
 subscr_revenue "Yearly subscription revenue (in 10 M SEK)" ///
 pub_freq "Publication frequency (# of days per week)" ///
 pages "Average number of pages" chain "Part of newspaper chain (yes/no)" ///
 newsp_per_o "Number of co-owned newspapers" _cons "Constant" ///
 dummy_year2 "-2015" dummy_year3 "-2016" dummy_year4 "-2017" dummy_year5 "-2018" dummy_year6 "-2019") ///
 title(Table 2: Ordinary least squares regression predicting newspapers' concentration of political viewpoints) ///
 addnotes("Notes: $est_notes $se_notes" ///
 "* p<0.10, ** p<0.05, *** p<0.01")
 
 
 
 
 
 
* Table S.1: Ordinary least squares regression predicting newspapers' concentration of political viewpoints (alternative operationalizations of ownership form)
use "newspaper month level data.dta", clear
quietly tab year, gen(dummy_year)
global est_notes = "The regressions use data at the newspaper-year level. The dependent variable is the index of internal concentration of political opinions."
global se_notes = "Standard errors (in parentheses) are clustered by newspaper."
eststo clear
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 chain family private traded dummy_year2-dummy_year6, cluster(outlet)
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 newsp_per_o family private traded dummy_year2-dummy_year6, cluster(outlet) 
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 chain private3 dummy_year2-dummy_year6, cluster(outlet)
quietly eststo: reg simpson leader subscr_revenue pub_freq pages ///
 newsp_per_o private3 dummy_year2-dummy_year6, cluster(outlet) 
esttab, star(* 0.10 ** 0.05 *** 0.01) se compress nonotes varwidth(52) noobs ///
 scalars("r2_a Adj. R2" "N_clust Number of newspapers" "N Number of observations") sfmt(3 0 0) ///
 cells(b(fmt(3) star) se(par fmt(3))) nodepvars nomtitles modelwidth(14) ///
 refcat(family "Ownership form (reference category: foundation)" ///
 dummy_year2 "Year dummies (reference category: 2014)") ///
 order(family private traded private3 chain newsp_per_o leader subscr_revenue pub_freq pages) ///
 coeflabels(private3 "-family + independent + publicly traded" traded "-publicly traded" ///
 family "-family" private "-independent" traded "-publicly traded" ///
 leader "Local market leader (yes/no)" ///
 private "Private ownership (yes/no)" subscr_revenue "Yearly subscription revenue (in 10 M SEK)" ///
 pub_freq "Publication frequency (# of days per week)" ///
 pages "Average number of pages" chain "Part of newspaper chain (yes/no)" ///
 newsp_per_o "Number of co-owned newspapers" _cons "Constant" ///
 dummy_year2 "-2015" dummy_year3 "-2016" dummy_year4 "-2017" dummy_year5 "-2018" dummy_year6 "-2019") ///
 title(Table S.1: Ordinary least squares regression predicting newspapers' concentration of political viewpoints (alternative operationalizations of ownership form)) ///
 addnotes("Notes: $est_notes $se_notes" ///
 "* p<0.10, ** p<0.05, *** p<0.01")
 
 
 
 
 

* Figure 1: Market-level diversity, by number of newspapers in the market
use "municipality month level data.dta", clear
replace count_papers = 3 if count_papers > 2

ttest simpson if count_papers == 1 | count_papers == 2, by(count_papers)
ttest simpson if count_papers == 2 | count_papers == 3, by(count_papers)
ttest simpson if count_papers == 1 | count_papers == 3, by(count_papers)

collapse (mean) mean_simpson=simpson (sd) sd_simpson=simpson (count) n=simpson, by(count_papers)
 
generate hi_simpson = mean_simpson + invttail(n-1,0.025)*(sd_simpson / sqrt(n))
generate lo_simpson = mean_simpson - invttail(n-1,0.025)*(sd_simpson / sqrt(n))

graph twoway (bar mean_simpson count_papers,  barwidth(0.5)) ///
 (rcap hi_simpson lo_simpson count_papers) ///
 (scatteri 15.85 1.05 15.85 1.95, recast(line) lw(medthin) mc(none) lc(gs6) lp(solid)) ///
 (scatteri 15.85 1.05 15.85 1.95, recast(dropline) base(15.835) lw(medthin) mc(none) lc(gs6) lp(solid)) ///
 (scatteri 15.85 2.05 15.85 2.95, recast(line) lw(medthin) mc(none) lc(gs6) lp(solid)) ///
 (scatteri 15.85 2.05 15.85 2.95, recast(dropline) base(15.835) lw(medthin) mc(none) lc(gs6) lp(solid)) ///
 (scatteri 15.90 0.95 15.90 3.05, recast(line) lw(medthin) mc(none) lc(gs6) lp(solid)) ///
 (scatteri 15.90 0.95 15.90 3.05, recast(dropline) base(15.885) lw(medthin) mc(none) lc(gs6) lp(solid)), /// 
 scheme(s2mono) legend(off) ytitle("Concentration of political viewpoints") ///
 ylabel(15.64(0.08)15.96, nogrid angle(0) format(%5.2f)) xscale(range(0.5 3.5)) ///
 xlabel(1 "1" 2 "2" 3 ">= 3" ) xtitle(" " "Number of newspapers") ///
 graphregion(color(white)) plotregion(margin(zero)) scale(1.3) ///
 text(15.86 1.5 "0.016", size(small)) ///
 text(15.86 2.5 "0.048***", size(small)) ///
 text(15.91 2 "0.032**", size(small))

 

 
* Figure S.1: Market-level diversity and distribution of local market shares
use "municipality month level data.dta", clear

collapse (mean) simpson newsp_hhi ratio_first, by(municipality)

* Panel A: Market concentration
corr simpson newsp_hhi
local corr: di %4.3f r(rho)
graph twoway (scatter simpson newsp_hhi) (lfitci simpson newsp_hhi, color(%45)), ///
 scheme(s2mono)  graphregion(color(white)) scale(1.2) legend(off) ///
 ytitle("Concentration of political viewpoints") ylabel(, angle(0)) ///
 xtitle(" " "Herfindahl-Hirschman index of subscriptions") xlabel(20(20)100, angle(0)) ///
 legend(off) caption(" Correlation:" "`corr'", pos(3) size(medsmall))

* Panel B: Relative size of market leader 
corr simpson ratio_first
local corr: di %4.3f r(rho)
graph twoway (scatter simpson ratio_first) (lfitci simpson ratio_first, color(%45)), ///
 scheme(s2mono)  graphregion(color(white)) scale(1.2) legend(off) ///
 ytitle("Concentration of political viewpoints") ylabel(, angle(0)) ///
 xtitle(" " "Ratio of subscriptions of market leader to other papers") xlabel(0(10)60, angle(0)) ///
 legend(off) caption(" Correlation:" "`corr'", pos(3) size(medsmall))
 
 
 
 
 

